package com.udi.project.business.local.di.service;


import com.udi.framework.web.domain.AjaxResult;
import com.udi.project.business.base.domain.BaseCorpVo;
import com.udi.project.business.local.di.domain.DtDi;
import com.udi.project.business.upload.diup.domain.Product;
import com.udi.project.business.pojo.damain.*;
import com.udi.project.business.pojo.damain.Package;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Admin
 * di管理业务层
 */
public interface DiMangeService {

    /**
     *
     * @Description:查询DI列表
     * @param DtDi 时间
     * @return: java.util.List<com.udi.project.business.diManage.entity.DiMange> DI列表
     * @Date: 2021/8/9 11:15
     */
     List<DtDi> selectDi(DtDi DtDi);

    /**
     *
     * @Description:查询DI列表历史信息
     * @param DtDi 时间
     * @return: java.util.List<com.udi.project.business.diManage.entity.DiMange> DI列表
     * @Date: 2021/8/9 11:15
     */
    List<DtDi> selectDils(DtDi DtDi);

    /**
     * @param di
     * 根据di表id查询一行信息
     */
    DtDi selectDiById(Integer di);

    /**
     * @param di
     * 根据di表id查询一行信息
     */
    DtDi selectDilsById(Integer di);

    /**返回所有的部门名称与部门编号*/
    public List<dtPkg> selectPkg();

    /**
     *
     * @Description:删除指定DI 删除DI的同时会将UDI PI一起删除 操作需谨慎
     * @param code DI编号
     * @return: int 影响条数
     * @Date: 2021/8/9 11:17
     */
    int delectDi(String code) throws Exception;


    /**
     *
     * @Description:插入di码
     * @param udiMange di实体类
     * @return: int 影响条数
     * @Date: 2021/8/9 11:19
     */
    int insertDi(@Param("udiMange") List<DtDi> udiMange) throws Exception;

    /**
     * @Description:更新DI状态和使用途径
     * @param di 更新内容 字段与实体保持一致
     * @return: int
     * @Date: 2021/8/9 11:29
     **/
    public int updateStatu(List<DtDi> di);

    /**
     *
     * @Description:更新DI
     * @param udiMange 更新内容 字段与实体DiMange保持一致
     * @return: int
     * @Date: 2021/8/9 11:29

    public int updateDi(@Param("udiMange") List<DtDi> udiMange) throws Exception;
     */



    /**
     *
     * @Description: 插入DI详细信息
     * @param identity 详细信息
     * @return: int
     * @Date: 2021/8/13 15:34
     */
    public AjaxResult insertInformation(@Param("identity") List<Product> identity);


    /**
     *
     * @Description: 更新DI详细信息
     * @param identity 详细信息
     * @return: int
     * @Date: 2021/8/13 15:34
     */
    public AjaxResult updateInformation(@Param("identity") List<Product> identity);


    /**
     *
     * @Description: 删除DI详细信息
     * @param di_id di_id
     * @return: int
     * @Date: 2021/8/13 15:34
     */
    public AjaxResult  delectInformation(String di_id);


    /**
     *
     * @Description: 删除DI详细信息
     * @param di DI
     * @return: int
     * @Date: 2021/8/13 15:34
     */
    public List<Product> selectInformation(String di);




    /**
     *
     * @Description: 查询包装标识信息带相应的DI码 支持批量查询
     * @param id di_id
     * @return: java.util.List<com.udi.project.business.pojo.damain.Package>
     * @Date: 2021/8/18 15:10
     */
    public List<Package> selectpkgDi(@Param("id") List<String> id);

    /**
     *
     * @Description: 查询包装标识信息
     * @param id di_id
     * @return: java.util.List<com.udi.project.business.pojo.damain.Package>
     * @Date: 2021/8/18 15:10
     */
    public List<Package> selectpkg(String id);


    /**
     *
     * @Description: 新增包装标识信息支持批量
     * @param packag 包装标识信息
     * @return: int
     * @Date: 2021/8/18 15:12
     */
    public String insertPkg(@Param("package") List<Package> packag);

    /**
     *
     * @Description: 更新包装标识信息 支持批量
     * @param packag 包装标识信息
     * @return: int
     * @Date: 2021/8/18 15:12
     */
    public String updatePkg(@Param("package") List<Package> packag);

    /**
     *
     * @Description: 删除包装标识信息 支持批量
     * @param id di_id
     * @return: int
     * @Date: 2021/8/18 15:12
     */
    public String deletePkg(@Param("package") List<Package> id);



    /**
     *
     * @Description: 查询存储或操作信息带相应的DI码 支持批量查询
     * @param id di_id
     * @return: java.util.List<com.udi.project.business.pojo.damain.Package>
     * @Date: 2021/8/18 15:10
     */
    public List<Storage> selectStorageDi(@Param("id") List<String> id);


    /**
     *
     * @Description: 查询存储或操作信息
     * @param id di_id
     * @return: java.util.List<com.udi.project.business.pojo.damain.Package>
     * @Date: 2021/8/18 15:10
     */
    public List<Storage> selectStorage(String id);

    /**
     *
     * @Description: 插入存储或操作信息
     * @param storage 存储或操作信息
     * @return: int 影响条数
     * @Date: 2021/8/18 15:17
     */
    public String insertStorage(@Param("storage") List<Storage> storage);


    /**
     *
     * @Description: 插更新存储或操作信息
     * @param storage 存储或操作信息
     * @return: int 影响条数
     * @Date: 2021/8/18 15:17
     */
    public String updateStorage(@Param("storage") List<Storage> storage);


    /**
     *
     * @Description: 删除存储或操作信息 支持批量
     * @param id di_id
     * @return: int
     * @Date: 2021/8/18 15:17
     */
    public String deleteStorage(@Param("storage") List<Storage> id);




    /**
     *
     * @Description: 查询临床尺寸信息带相应的DI码 支持批量查询
     * @param id di_id
     * @return: java.util.List<com.udi.project.business.pojo.damain.Package>
     * @Date: 2021/8/18 15:10
     */
    public List<Clinical> selectClinicalDi(@Param("id") List<String> id);


    /**
     *
     * @Description: 查询临床尺寸信息
     * @param id di_id
     * @return: java.util.List<com.udi.project.business.pojo.damain.Package>
     * @Date: 2021/8/18 15:10
     */
    public List<Clinical> selectClinical(String id);

    /**
     *
     * @Description: 插入临床尺寸信息
     * @param clinical 临床尺寸信息
     * @return: int 影响条数
     * @Date: 2021/8/18 15:17
     */
    public String insertClinical(@Param("Clinical") List<Clinical> clinical);


    /**
     *
     * @Description: 插更新临床尺寸信息
     * @param clinical 临床尺寸信息
     * @return: int 影响条数
     * @Date: 2021/8/18 15:17
     */
    public String updateClinical(@Param("Clinical") List<Clinical> clinical);
    /**
     *
     * @Description: 删除临床尺寸信息 支持批量
     * @param id di_id
     * @return: int
     * @Date: 2021/8/18 15:17
     */
    public String deleteClinical(@Param("Clinical") List<Clinical> id);

    /**
     * 辅助信息接口
     * @param id
     [id]* @return java.util.List<com.udi.project.business.base.domain.BaseCorpVo>
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/14 11:04
     */
    public List<BaseCorpVo> getdept(String id);
}
